home *** CD-ROM | disk | FTP | other *** search
- /**************** Window Management *****************/
-
-
- function AimSidebarPanelOnWndLoad() {
-
- // Read signon prefs. We need to load at least the screen name here,
- // but might as well load the password and autoLogin prefs, too.
-
- var screenName = aimPrefsManager().GetCharPref("aim.session.screenname", null, true);
-
- dump("ScreenName is " + screenName);
-
- var password = aimSessionGetPassword(null);
- var autoLogin = aimPrefsManager().GetBoolPref("aim.session.autologin", null, false);
- var firstTime = aimPrefsManager().GetBoolPref("aim.session.firsttime", null, true); // firsttime is a GLOBAL pref
-
-
- dump("setting AIMDocumentPath \n");
- top.AIMDocumentPath=window;
- // If no screen name, display the registration screen
- // Or even if there is a screenname if they havent launched AIM yet
-
- if (firstTime) {
-
- //launch migration wizard
- aimGlobalCmdStartupWizard();
- aimPrefsManager().SetBoolPref("aim.session.firsttime",false, null, true);
- // firsttime is a GLOBAL pref
- }
-
- // Initialize online state
- var state = AimDataSource.GetTarget(AimSession, SessionState, true);
- if (state == null)
- state = RDF.GetLiteral("Register");
-
- OnlineObserver.onAssert(AimDataSource, AimSession, SessionState, state);
-
- // Watch future changes to online state
- AimDataSource.AddObserver(OnlineObserver);
-
-
-
-
- // Auto login
- if (screenName && screenName != '' && password && password != '' && autoLogin) {
- if (state.EqualsNode(RDF.GetLiteral("Offline")))
- aimSessionLogin(screenName, password);
- }
-
- //setupChatRendezvous();
- AimSidebarPanelSetAwayMsgBtn()
-
- }
-
-
- function AimSidebarPanelSetAwayMsgBtn(){
- dump("** aimsidebarpanelsetawaymsgbtn \n")
- GetRDFService();
- var sidebar_file = GetAwayMessagesFileLoc();
- var datasource = RDF.GetDataSource(sidebar_file);
-
- menu = window.document.getElementById("btnbuddyorgaway");
- menu.database.AddDataSource(datasource);
- menu.setAttribute('ref', menu.getAttribute('ref'));
-
- menu = window.document.getElementById("btnsetuporgaway");
- menu.database.AddDataSource(datasource);
- menu.setAttribute('ref', menu.getAttribute('ref'));
-
-
-
- }
-
- function AimSidebarPanelOnWndUnload() {
-
- // Save signon fields if offline. If online, we saved during signon.
- var state = AimDataSource.GetTarget(AimSession, SessionState, true);
- GetRDFService();
- if (state == null || state.EqualsNode(RDF.GetLiteral("Offline")))
- SaveFieldsToPrefs();
-
- AimDataSource.RemoveObserver(OnlineObserver);
- }
-
- function InitFieldsFromPrefs() {
-
- dump( "InitFieldsFromPrefs()\n" );
-
- var screenName = aimPrefsManager().GetCharPref("aim.session.screenname", null, true);
- //var password = aimPrefsManager().GetCharPref("aim.session.password", null, false);
- var password = aimSessionGetPassword(null);
- var savePassword = aimPrefsManager().GetBoolPref("aim.session.storepassword", null, false);
- var autoLogin = aimPrefsManager().GetBoolPref("aim.session.autologin", null, false);
-
- document.getElementById('fldScreenName').value = screenName;
- // need to select this if possible
- //document.getElementById('fldScreenName').setSelectionRange(0,-1);
-
- document.getElementById('chkSavePassword').checked = savePassword;
-
- if(savePassword)
- document.getElementById('fldPassword').value = password;
-
- document.getElementById('chkAutoLogin').checked = autoLogin;
- //Temporary workaround for password field showing text
- //Giving focus causes asterisks to appear properly
- //document.getElementById('fldPassword').focus()
- EnableInputs();
- }
-
- function SaveFieldsToPrefs() {
- dump( "SaveFieldsFromPrefs()\n" );
-
- var screenName = document.getElementById('fldScreenName').value;
- var password = document.getElementById('fldPassword').value;
- var autoLogin = document.getElementById('chkAutoLogin').checked;
- var savePassword = document.getElementById('chkSavePassword').checked;
-
- aimPrefsManager().SetCharPref("aim.session.screenname", screenName, null, true);
-
- if (savePassword)
- aimSessionSavePassword(password);//prefs.SetCharPref("aim.session.password", password);
- else
- aimSessionSavePassword("");//prefs.SetCharPref("aim.session.password", "");
-
- aimPrefsManager().SetBoolPref("aim.session.storepassword", savePassword, null, false);
- aimPrefsManager().SetBoolPref("aim.session.autologin", autoLogin, null, false);
- }
-
- function EnableInputs() {
- var password = document.getElementById("fldPassword").value;
- var savePassword = document.getElementById("chkSavePassword").checked;
-
- if (password != "") {
- document.getElementById("chkSavePassword").disabled = false;
- document.getElementById("chkAutoLogin").disabled = !savePassword;
-
- // XXX This is what the AIM 3.0 client does. Not sure if we should
- // change it.
- if (!savePassword)
- document.getElementById("chkAutoLogin").checked = false;
- }
- else {
- document.getElementById("chkSavePassword").disabled = true;
- document.getElementById("chkAutoLogin").disabled = true;
-
- // XXX This is what the AIM 3.0 client does. Not sure if we should
- // change it.
- document.getElementById("chkSavePassword").checked = false;
- document.getElementById("chkAutoLogin").checked = false;
- }
- }
-
- function TellParentState(state)
- {
- var parentState = top.document.getElementById("AimSidebarState");
- if(!parentState)
- return;
-
- parentState.setAttribute("AimState", state);
- }
-
- function TellParentTab(curTab)
- {
- var parentState = top.document.getElementById("AimSidebarState");
- if(!parentState)
- return;
-
- dump("XXX Tab state = " + curTab + "\n");
- parentState.setAttribute("AimSidebarTab", curTab);
- }
-
- /**************** RDF Observing ********************/
-
- var OnlineObserver = new Object();
-
- OnlineObserver.onAssert = function(datasource, source, property, target)
- {
- if(source.EqualsNode(AimSession))
- {
- if(property.EqualsNode(SessionState))
- {
- var state = target.QueryInterface(Components.interfaces.nsIRDFLiteral).Value;
-
- dump('OnlineState: ' + state + '\n');
-
- document.getElementById("SignOnOrg").setAttribute("OnlineState", state);
- document.getElementById("ConnectingOrg").setAttribute("OnlineState", state);
- document.getElementById("OnlineOrg").setAttribute("OnlineState", state);
- document.getElementById("AwayOrg").setAttribute("OnlineState", state);
- document.getElementById("RegisterOrg").setAttribute("OnlineState", state);
- // document.getElementById("AwayOrg").setAttribute("OnlineState", state);
-
- TellParentState(state);
-
- if (state != "Offline" && state != "Online" && state != "Register" && state != "OnlineAway")
- {
- var str = aimString("btnSignOnProgress." + state);
- document.getElementById("btnSignOnProgress").setAttribute("value", str);
- var theProgressBar = document.getElementById("spconnectingprogressbar001");
- theProgressBar.setAttribute("value",parseInt(theProgressBar.getAttribute("value"))+20)
- }
-
- if(state == "Offline" || state == "Online" || state == "OnlineAway")
- {
- throbberObserver = top.document.getElementById("IM:Throbber");
- if(throbberObserver)
- throbberObserver.setAttribute("busy", "false");
- if(state == "Offline")
- {
- taskIconObserver = top.document.getElementById("IM:TaskIcon");
- if(taskIconObserver)
- taskIconObserver.setAttribute("online-state", "offline");
- }
- else
- {
- taskIconObserver = top.document.getElementById("IM:TaskIcon");
- if(taskIconObserver)
- taskIconObserver.setAttribute("online-state", "online");
- aimMigrateBuddyList( aimSessionCurrentScreenName() );
- }
- }
-
- // If returning to offline state, reinitialize the signon screen fields,
- // which appear to be cleared out when they are hidden. We also do this
- // when the form is loaded.
- if (state == "Offline")
- InitFieldsFromPrefs();
- }
- }
- };
-
- OnlineObserver.onUnassert = function(datasource, source, property, target)
- {
- // XXX Do we need to remove the attribute here ???
- };
-
- OnlineObserver.onChange = function(datasource, source, property, oldTarget, newTarget)
- {
- OnlineObserver.onAssert(datasource, source, property, newTarget);
- };
-
- OnlineObserver.onMove = function(datasource, oldSource, newSource, property, target)
- {
- OnlineObserver.onAssert(datasource, newSource, property, target);
- };
-
- OnlineObserver.beginUpdateBatch = function(datasource)
- {
- };
-
- OnlineObserver.endUpdateBatch = function(datasource)
- {
- };
-
- /**************** Command Handlers ******************/
-
- function cmdPanelSignOn()
- {
- SaveFieldsToPrefs();
-
- var screenName = document.getElementById('fldScreenName').value;
- var password = document.getElementById('fldPassword').value;
-
- aimSessionLogin(screenName, password);
- throbberObserver = top.document.getElementById("IM:Throbber");
- if(throbberObserver)
- throbberObserver.setAttribute("busy", "true");
- }
-
- function cmdPasswordKeyup(event) {
- // Enabled state of savePassword checkbox depends on
- // empty/non-empty password field
- EnableInputs();
- if (event.keyCode == 13)
- cmdPanelSignOn();
- }
-
- function cmdScreenName(event) {
- var screenName = document.getElementById('fldScreenName').value;
- dump("cmdScreenName" + screenName + "\n");
-
- /* for (i in event) {
- dump(i); dump ("->");
- var j;
- for (j in i) {
- dump (j); dump (" ") ;
- }
- dump("\t");
- }
- //dump("which is " + event.which); */
-
- try {
- var password = "";
- try {
- password = aimSessionGetPassword(screenName);
- } catch (e) {}
- document.getElementById('fldPassword').value = password;
- document.getElementById('fldPassword').setAttribute("value",password);
- } catch (e) {dump("exception\n");}
- }
-
- function cmdClickSavePassword() {
- // Enabled state of autoLogin checkbox depends on
- // state of savePassword checkbox
- EnableInputs();
- }
-
- function cmdClickAutoLogin() {
- }
-
- function cmdRegisterScreenName() {
- var screenName = document.getElementById('fldRegisterName').value;
-
- if (screenName == '') {
- aimErrorBox(aimString("msg.NoScreenName"));
- return;
- }
-
- // this will call into nsIAimSession, save the screen name in prefs and
- // notify our observers to go from the register panel to the signon panel
- aimSessionRegister(screenName);
-
- document.getElementById('fldScreenName').value = screenName;
- }
-
- function cmdDoubleClick(event)
- {
- var screenName = event.target.parentNode.parentNode.getAttribute('ScreenName');
- // dump('double click: ' + event + ', ' + screenName + '\n');
-
- if(screenName) {
- if ( aimIMDoesIMExist(screenName) )
- // XXX should be entity
- aimErrorBox(aimString("msg.DuplicateIM"));
- else {
- if ( aimBuddyIsOnline(screenName) )
- aimIMInvokeIMForm(screenName, null);
- else
- aimIMInvokeIMForm("", null);
- }
- }
- }
- function cmdFocus(event)
- {
- dump('focus: ' + event.target.tagName + '\n');
- }
- function cmdBlur(event)
- {
- dump('blur: ' + event.target.tagName + '\n');
- }
- function cmdGroupKeyUp(event)
- {
- if (event.keyCode == 13)
- {
- var item = event.target.parentNode.parentNode.parentNode;
- var name = item.getAttribute('Name');
- var newName = event.target.value;
-
- dump('renameGroup: ' + name + ', ' + newName + '\n');
- aimBuddyRenameBuddyGroup(name, newName);
- }
- }
- function cmdBuddyKeyUp(event)
- {
- if (event.keyCode == 13)
- {
- var item = event.target.parentNode.parentNode.parentNode;
- var screenName = item.getAttribute('ScreenName');
- var newName = event.target.value;
-
- var groupItem = item.parentNode.parentNode;
- var groupName = groupItem.getAttribute('Name');
-
- var nextBuddy = null;
- if (item.nextSibling)
- nextBuddy = item.nextSibling.getAttribute('ScreenName');
-
- // XXX aimBuddyReplaceBuddy(groupName, screenName, newName);
- aimBuddyRemoveBuddy(groupName, screenName);
- aimBuddyAddBuddy(groupName, newName, nextBuddy);
- }
- }
- function spInPlaceAddBuddy()
- {
- dump('spInPlaceAddBuddy\n');
- spInPlaceAddDelete( "AddBuddy" );
- }
- function spAddBuddy()
- {
- val = prompt( "Enter Buddy Name","" );
- }
- function spAddGroup()
- {
- val = prompt( "Enter Group Name", "" );
- }
- function spInPlaceAddGroup()
- {
- dump('spInPlaceAddGroup\n');
- spInPlaceAddDelete( "AddGroup" );
- }
- function spInPlaceDelete()
- {
- dump('spDelete\n');
- spInPlaceAddDelete( "Delete" );
- }
-
- function spInPlaceAddDelete( what ) // "Delete", "AddGroup", "AddBuddy"
- {
- // Locate selection in setup list
- // XXX There must be a better way to do this
- var selectedGroup = null;
- var selectedBuddy = null;
- var tree = document.getElementById("ListSetup");
- var groups = tree.childNodes[2].childNodes;
- for (var i = 0; i != groups.length; i++)
- {
- if (groups[i].getAttribute("selected") == "true")
- {
- selectedGroup = groups[i].getAttribute("Name");
- break;
- }
-
- var buddies = null;
- for (var j = 0; j != groups[i].childNodes.length; j++)
- {
- if (groups[i].childNodes[j].nodeName == "treechildren")
- {
- buddies = groups[i].childNodes[j].childNodes;
- break;
- }
- }
-
- if (buddies)
- {
- for (var j = 0; j != buddies.length; j++)
- {
- if (buddies[j].getAttribute("selected") == "true")
- {
- selectedBuddy = buddies[j].getAttribute("ScreenName");
- break;
- }
- }
-
- if (selectedBuddy)
- {
- selectedGroup = groups[i].getAttribute("Name");
- break;
- }
- }
- }
-
- dump(' selectedGroup: ' + selectedGroup + '\n');
- dump(' selectedBuddy: ' + selectedBuddy + '\n');
-
- if (what == "AddBuddy")
- aimBuddyAddBuddy(selectedGroup, null, selectedBuddy);
- else if (what == "AddGroup")
- aimBuddyAddBuddyGroup(null, selectedGroup);
- else if (what == "Delete")
- {
- if (selectedBuddy)
- aimBuddyRemoveBuddy(selectedGroup, selectedBuddy);
- else if (selectedGroup)
- aimBuddyRemoveBuddyGroup(selectedGroup);
- }
- }
-
- function spFindEmpty( display )
- {
- // Locate selection in setup list
- // XXX There must be a better way to do this
- var selectedGroup = null;
- var selectedBuddy = null;
- var tree = document.getElementById("ListSetup");
- var groups = tree.childNodes[2].childNodes;
-
- dump( "In spFindEmpty\n" );
- for (var i = 0; i != groups.length; i++)
- {
- var buddies = null;
- for (var j = 0; j != groups[i].childNodes.length; j++)
- {
- if (groups[i].childNodes[j].nodeName == "treechildren")
- {
- buddies = groups[i].childNodes[j].childNodes;
- break;
- }
- }
-
- if (buddies)
- {
- for (var j = 0; j != buddies.length; j++)
- {
- if (buddies[j].getAttribute("ScreenName") == "")
- {
- dump( "Found a screen name that is empty\n" );
- selectedBuddy = buddies[j];
- if ( display == "none" ) {
- dump( "Setting style to display: none\n" );
- selectedBuddy.setAttribute("style", "visibility: hidden;");
- selectedBuddy.setAttribute("Yabba", "Dabba;");
- }
- else {
- dump( "Setting style to display: block\n" );
- selectedBuddy.setAttribute("style", "visibility: visible;");
- }
- }
- if (buddies[j].getAttribute("type") == "text")
- {
- dump( "Found an object that has a type of 'text'\n" );
- }
- }
- }
- }
-
- dump(' selectedGroup: ' + selectedGroup + '\n');
- dump(' selectedBuddy: ' + selectedBuddy + '\n');
- }
- /*
- function displayFrontTab(tabObj)
- {
- tabOne=document.getElementById('tabOnline');
- tabTwo=document.getElementById('tabSetup');
- tabOne.setAttribute("style","");
- tabTwo.setAttribute("style","");
- tabObj.setAttribute("style","");
- }
-
- */
-
- function toOpenWindowByType2( inType, uri )
- {
- dump ("toOpenWindowByType " + uri + " \n");
-
- var windowManager = Components.classes['@mozilla.org/rdf/datasource;1?name=window-mediator'].getService();
-
- var windowManagerInterface = windowManager.QueryInterface( Components.interfaces.nsIWindowMediator);
-
- var topWindow = windowManagerInterface.getMostRecentWindow( inType );
-
- if ( topWindow ) {
- topWindow.focus();
- //AimWindowLoad2(topWindow);
- }
- else
- window.openDialog(uri, "_blank", "chrome,all,titlebar,dialog=no", "Setup");
- }
-
- /*** setup chat callbacks for rendezvous ***/
- /** start services **/
- var IMServiceClass = Components.classes['@netscape.com/aim/IMManager;1'];
- var pIIMManager = IMServiceClass.getService(Components.interfaces.nsIIMManager);
- var ChatManager = pIIMManager.QueryInterface(Components.interfaces.nsIAimChatManager);
-
- /*** setup the chat call backs **/
- var ChatCallback = new Object();
-
- ChatCallback.OnRequestRoomComplete = function(roomName,chatRoomObj){
- dump("OnRequestRoomComplete: success on " + roomName + "\n");
-
- chatRoomObj.SetChatRoomCallback(ChatRoomCallback);
-
- top.chatRoomObj = chatRoomObj;
- window.setTimeout('top.chatRoomObj.Join()', 5000);
- window.setTimeout('top.chatRoomObj.Invite("vishy26aug", "Join this MAAN")', 10000);
- window.setTimeout('top.chatRoomObj.SendMessage("This is working!!")', 30000);
- window.setTimeout('top.chatRoomObj.SendWhisper("vishy26aug", "Private message for vishy26aug")', 30000);
- }
-
-
- ChatCallback.OnRequestRoomError = function(roomName,errMsg){
- dump("OnRequestRoomError: there was an error \n");
-
- }
-
- /** setup the chat Room callbacks **/
-
- var ChatRoomCallback = new Object();
-
- ChatRoomCallback.OnJoined = function()
- {
- dump("Yes I Joined\n");
- }
-
- ChatRoomCallback.OnUserJoined = function(screenName)
- {
- dump( screenName + "joined the chat\n");
- }
-
- ChatRoomCallback.OnInfoUpdate = function()
- {
- }
-
- ChatRoomCallback.OnMessageReceived = function(screenName, language, message)
- {
- dump (screenName + " SAYETH " + message + " IN " + language +"\n");
- }
-
-
-
- var rendezvousCallback = new Object();
-
- rendezvousCallback.OnProposalReceived = function (screenname, proposal)
- {
- dump ("got a proposal from " + screenname + "\n");
-
- //proposal.Accept();
- inviteArgsObj = {
- inviteProposalScreenName: screenname,
- inviteProposalObj: proposal,
- invitedScreenNames: '',
- inviteToExistingWindow: false,
- inviteMode: 'incomingchat'
- }
- dump('send proposal to dialog! \n;')
- window.openDialog('chrome://aim/content/chatInviteBuddy.xul','_blank','chrome,all,dialog=no',inviteArgsObj);
-
- //dump("accepted the proposal");
-
- //ChatManager.RequestProposedRoom(ChatCallback, proposal);
-
- }
-
- function setupChatRendezvous(){
- dump("entering setupChatRendezvous 3\n");
- ChatManager.SetChatRendezvousCallback(rendezvousCallback)
- dump("exiting setupChatRendezvous \n");
- }
-
-
- /*** end setup chat callbacks for rendezvous ***/
-
- function cmdNewChatSidebar(invScreenName,invProposal,invScreenNames,toExistingWindow,invMode){
-
- inviteArgsObj = {
- inviteProposalScreenName: invScreenName,
- inviteProposalObj: invProposal,
- invitedScreenNames: getSelectedBuddiesFromList(), //invScreenNames, (getSelectedBuddiesFromList is in App.js)
- inviteToExistingWindow: toExistingWindow,
- inviteMode: invMode
- }
-
- window.openDialog('chrome://aim/content/chatInviteBuddy.xul','_blank','chrome,all,dialog=no',inviteArgsObj);
- }
-
-